#include<iostream>
#include<algorithm>
using namespace std;
long long f[200][200];
int main()
{
    int n;cin>>n;long long p,ans=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>p;
            f[i][j]=f[i-1][j]+f[i][j-1]+p-f[i-1][j-1];
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=n;j++)
        {
            long long cnt=0;
            for(int k=1;k<=n;k++)
            {
                if(cnt>=0)
                cnt+=f[j][k]-f[j][k-1]-(f[i-1][k]-f[i-1][k-1]);
                else cnt=f[j][k]-f[j][k-1]-(f[i-1][k]-f[i-1][k-1]);
                ans=max(ans,cnt);
            }
        }
    }
    cout<<ans;
}





// #include<iostream>
// #include<algorithm>
// using namespace std;
// long long f[200][200];
// int main()
// {
//     int n;cin>>n;long long p,maxn=0;
//     for(int i=1;i<=n;i++)
//     {
//         for(int j=1;j<=n;j++)
//         {
//             cin>>p;
//             f[i][j]=f[i-1][j]+f[i][j-1]+p-f[i-1][j-1];
//         }
//     }
//     for(int i=1;i<=n;i++)
//     {
//         for(int j=1;j<=n;j++)
//         {
//             for(int p=i;p<=n;p++)
//             {
//                 for(int q=j;q<=n;q++)
//                 {
//                     maxn=max(maxn,f[p][q]+f[i-1][j-1]-f[p][j-1]-f[i-1][q]);
//                 }
//             }
//         }
//     }
//     cout<<maxn;
// }